package eteam.aps.service;

import com.fasterxml.jackson.core.JsonProcessingException;
import eteam.aps.model.dto.ProductConsumerDto;
import eteam.aps.model.entity.arrival.ArrivalVouch;
import eteam.aps.model.entity.other.OutBound;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 生产领料 业务层
 *
 * @author LiuLei
 */
public interface ProductConsumerService {

    /**
     * 查询 单个出库单信息
     * @param scan 出库单单号
     * @return 出库单信息
     * @throws Exception 异常
     */
    List<OutBound> getOtherOutbound(String scan) throws Exception;

    /**
     * 添加出库单
     * @param map 添加对象
     * @return tradeid
     * @throws Exception 异常
     */
    String addBound(Map<String, Object> map) throws Exception;

    /**
     *
     * @param scan 到货单
     * @return 到货单信息
     */
    ArrivalVouch getOneByPurBarCode(String scan);

    /**
     * 查询现有库存量
     * @param productConsumerDto 查询条件
     * @return 库存量
     * @throws Exception 异常
     */
    BigDecimal getCurrentStock(ProductConsumerDto productConsumerDto) throws Exception;

    /**
     * 根据条码查询物料库存信息
     * @param barCode 条码
     * @return 领料单库存
     */
    Map<?,?> getStockByBarCode(String barCode) throws JsonProcessingException;
}
